home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dskut / sysgn132.zip / MAKECFG.PAS < prev    next >
Pascal/Delphi Source File  |  1989-12-11  |  6KB  |  195 lines

  1. PROGRAM Make_CFG;
  2.  
  3. (*
  4.  
  5.   Roger Link 12/08/89
  6.  
  7. *)
  8.  
  9. USES
  10.   DOS, CRT;
  11.  
  12. CONST
  13.   Black     = 0;     Blue      = 1;    Green     = 2;     Cyan      = 3;
  14.   Red       = 4;     Magenta   = 5;    Brown     = 6;     L_Gray    = 7;
  15.   Gray      = 8;     L_Blue    = 9;    L_Green   = 10;    L_Cyan    = 11;
  16.   L_Red     = 12;    L_Magenta = 13;   Yellow    = 14;    White     = 15;
  17.  
  18. TYPE
  19.   LineType = STRING[ 255 ];
  20.  
  21. VAR
  22.   CFG_FileName : LineType;
  23.  
  24.  
  25. (* As copied from page 96 of Turbo Pascal manual for old CP/M MS-DOS *)
  26. (*  version (version 2.0 - 3.0??) *)
  27. FUNCTION Exist( FileName : LineType ) : BOOLEAN;
  28. VAR
  29.   WorkFile : file;
  30. BEGIN
  31.   Assign( WorkFile, FileName );     (* Do a test to see if file exists *)
  32.   {$I-}
  33.   Reset( WorkFile );
  34.   {$I+}
  35.  
  36.   Exist := (IOresult = 0 );
  37. END; (* Exist *)
  38.  
  39.  
  40. PROCEDURE Do_Signon;
  41. BEGIN
  42.   TextColor( Magenta );
  43.   WriteLn( '** Link MakeCFG utility for use with SYSGEN - RAL 12/08/89 **' );
  44. END;  (* Do_Signon *)
  45.  
  46.  
  47. PROCEDURE Do_Help_Screen;
  48. BEGIN
  49.   TextColor( Green );
  50.   WriteLn( 'MAKECFG filetype.typ' );
  51.   WriteLn( '  Will create "filetype.typ" by merging \autoexec.bat and \config.sys' );
  52.   WriteLn( '  and other files (the user is prompted for these "other" files) from ' );
  53.   WriteLn( '  the current drive into a format ready for SYSGEN.' );
  54. END;  (* Do_Help_Screen *)
  55.  
  56.  
  57. PROCEDURE Do_MakeCFG( CFG_FileName : LineType );
  58. VAR
  59.   CFG_File   : TEXT;
  60.   Input_File : TEXT;
  61.   Line       : LineType;
  62.   FileName   : LineType;
  63.   Letter     : Char;
  64.  
  65. BEGIN
  66.   Assign( CFG_File, CFG_FileName );
  67.   ReWrite( CFG_File );
  68.  
  69.   TextColor( Green );
  70.   WriteLn( ' Reading \autoexec.bat' );
  71.  
  72.   Assign( Input_File, '\autoexec.bat' );
  73.   Reset( Input_File );
  74.  
  75.   WriteLn( CFG_File, '.;********************************************************' );
  76.   WriteLn( CFG_File, '.;*'                                                        );
  77.   WriteLn( CFG_File, '.;* SYSTEM.CFG created by MAKECFG from existing'              );
  78.   WriteLn( CFG_File, '.;*    autoexec.bat & config.sys'                           );
  79.   WriteLn( CFG_File, '.;*'                                                        );
  80.   WriteLn( CFG_File, '.;********************************************************' );
  81.   WriteLn( CFG_File, '.E SYSTEM.CFG - MAKECFG version'                              );
  82.   WriteLn( CFG_File, '.;23456789'                                                 );
  83.   WriteLn( CFG_File, 'E1        ** Default System Sysgen **'                      );
  84.   WriteLn( CFG_File, 'V1        ** Default System Sysgen **'                      );
  85.   WriteLn( CFG_File, 'F123456789\autoexec.bat'                                    );
  86.   WriteLn( CFG_File, '-123456789@echo off'                                        );
  87.   WriteLn( CFG_File, '-123456789rem ********************************************' );
  88.   WriteLn( CFG_File, '-123456789rem * DO NOT EDIT THIS FILE. IT IS GENERATED'     );
  89.   WriteLn( CFG_File, '-123456789rem *        BY MACHINE (SYSGEN.EXE)'             );
  90.   WriteLn( CFG_File, '-123456789rem ********************************************' );
  91.   WriteLn( CFG_File, '.;=========== Start of user AUTOEXEC.BAT' );
  92.  
  93.   WHILE NOT EOF( Input_File ) DO
  94.     BEGIN
  95.       ReadLn( Input_File, Line );
  96.       WriteLn( CFG_File, '-1        ', Line );
  97.     END;
  98.  
  99.   Close( Input_File );
  100.  
  101.   TextColor( Green );
  102.   WriteLn( ' Reading \config.sys' );
  103.  
  104.   Assign( Input_File, '\config.sys' );
  105.   Reset( Input_File );
  106.  
  107.   WriteLn( CFG_File, '.;*'                    );
  108.   WriteLn( CFG_File, '.;*'                    );
  109.   WriteLn( CFG_File, '.;* CONFIG.SYS stuff'   );
  110.   WriteLn( CFG_File, '.;*'                    );
  111.   WriteLn( CFG_File, '.;*'                    );
  112.   WriteLn( CFG_File, '.;23456789'             );
  113.   WriteLn( CFG_File, 'F123456789\config.sys'  );
  114.   WriteLn( CFG_File, '.;=========== Start of user CONFIG.SYS' );
  115.  
  116.   WHILE NOT EOF( Input_File ) DO
  117.     BEGIN
  118.       ReadLn( Input_File, Line );
  119.       WriteLn( CFG_File, '-1        ', Line );
  120.     END;
  121.  
  122.   Close( Input_File );
  123.  
  124.  
  125.   REPEAT
  126.     REPEAT
  127.       TextColor( Cyan );                        (* Grill user for Y/N *)
  128.       Write( 'Include any other files Y/N? ' ); (*  response          *)
  129.       TextColor( Brown );
  130.       ReadLn( Letter );
  131.       Letter := UpCase( Letter );
  132.     UNTIL Letter IN [ 'Y', 'N' ];
  133.  
  134.  
  135.     IF Letter = 'Y' THEN
  136.      BEGIN                                      (* Get filename *)
  137.       TextColor( Cyan );
  138.       Write( 'Enter Drive:\Path\Filename.Type? ' );
  139.       TextColor( Brown );
  140.       ReadLn( FileName );
  141.  
  142.       IF Exist( FileName ) THEN              (* If good file then do work *)
  143.        BEGIN
  144.  
  145.          TextColor( Green );
  146.          WriteLn( ' Reading ', FileName );
  147.  
  148.          Assign( Input_File, FileName );
  149.          Reset( Input_File );
  150.          WriteLn( CFG_File, '.;*'                      );
  151.          WriteLn( CFG_File, '.;* USER INCLUDED FILE'   );
  152.          WriteLn( CFG_File, '.;* ADDED DURING MAKECFG' );
  153.          WriteLn( CFG_File, '.;* ', FileName           );
  154.          WriteLn( CFG_File, '.;*'                      );
  155.          WriteLn( CFG_File, '.;23456789'               );
  156.          WriteLn( CFG_File, 'F123456789', FileName    );
  157.          WriteLn( CFG_File, '.;=========== Start of user ', FileName );
  158.  
  159.          WHILE NOT EOF( Input_File ) DO
  160.           BEGIN
  161.            ReadLn( Input_File, Line );
  162.            WriteLn( CFG_File, '-1        ', Line );
  163.           END;
  164.  
  165.          Close( Input_File );
  166.  
  167.          WriteLn;
  168.        END
  169.       ELSE
  170.        BEGIN
  171.          TextColor( Red );
  172.          WriteLn( 'File I/O ERROR during open of ', FileName );
  173.        END;
  174.      END;
  175.  
  176.   UNTIL Letter = 'N';
  177.  
  178.   Close( CFG_File );
  179.  
  180. END;  (* Do_MakeCFG *)
  181.  
  182.  
  183. BEGIN
  184.   Do_Signon;
  185.  
  186.   IF ParamCount = 0 THEN
  187.     Do_Help_Screen
  188.   ELSE
  189.     BEGIN
  190.       TextColor( Green );
  191.       CFG_FileName := ParamStr( 1 );
  192.       Do_MakeCFG( CFG_FileName );
  193.     END;
  194. END.
  195.